草庐IT

jQuery UI 实例

全部标签

c++ - 使用 make_shared<std::thread> 创建 shared_ptr<std::thread> 的实例

考虑以下代码:classA{....shared_ptrmThread;voidStep();voidLaunchTrhead();}voidA::LaunchThread(){...mThread=make_shared(Step);//Thislinegivesanerror...}voidA::Step(){...}我正在尝试初始化共享指针mThread以便它调用函数Step。但是,编译器给我错误“类型引用的无效初始化...来自类型‘未解析的重载函数类型’的表达式”。显然我在做一些愚蠢的事情,但我不能指责它。有人可以帮忙吗?提前致谢! 最佳答案

c++ - 内联函数体的潜在评估和模板成员的实例化

何时包含在标记为内联的函数中的表达式被视为“可能已评估”?a.cpptemplateconstT&foo(constT&arg){returnarg;}inlinevoiddead(){intx(21);x=foo(x);}b.cpp#includetemplateconstT&foo(constT&);intmain(intargc,char*argv[]){std::cout如果一旦定义了内联函数,表达式就被认为是“潜在求值”,那么模板应该被实例化,我希望$(CCC)-ca.cpp;$(CCC)-cb.cpp;$(CCC)a.ob.o-obin链接成功。相反,如果声明为内联的函数中

c++ - CFileDialog 实例化的问题

我正在遵循CFileDialog的定义,但VS2013仍然告诉我没有可用于我传入的参数的构造函数。我的代码:CFiletheFile;charstrFilter[]={"TXTFiles(*.txt)|*.txt|AllFiles(*.*)|*.*||"};CFileDialogfDlg=CFileDialog(TRUE,".txt",NULL,0,strFilter);产生的错误:1IntelliSense:noinstanceofconstructor"CFileDialog::CFileDialog"matchestheargumentlistargumenttypesare:(

c++ - 如何循环异构类的实例以调用具有相同名称和参数的方法?

如果我有:classA{voidfoo();};classB{voidfoo();};有没有办法收集A和B类型的实例来循环调用foo()方法?例如使用一些宏或指针和一些特殊的数据类型?还是收集函数指针?下面的伪代码可能会让您明白我的意思。intmain(){Aa;Bb;hypothetical_container_thypothetical_container;hypothetical_container.push_back(a);hypothetical_container.push_back(b);[...]//Dostuffwitha,dootherstuffwithbfor(h

c++ - 实例化函数模板的编译问题

考虑以下代码:#includestructS{voidf(constchar*s){std::coutvoidinvoke(S*pd,Args...args){(pd->*mem_fn)(args...);}intmain(){Ss;void(*pfn)(S*,constchar*)=invoke;pfn(&s,"hello");}编译代码时,clang报错如下:main.cpp:16:33:error:addressofoverloadedfunction'invoke'doesnotmatchrequiredtype'void(S*,constchar*)'void(*pfn)(S

c++ - 模板特化在其实例化点看不到函数

我不明白为什么它不正确#includeusingnamespacestd;structCL{};templatevoidfnc(Tt){f(t);}namespaceNS{voidf(CL){}voidfn(){fnc(CL());/*errorishere*/}//pointofinstantiationfncishere(innamespacescope,//accordingto14.6.4.1/1)}intmain(){}调用f(t)在模板函数中fnc依赖于模板参数,然后名称查找必须在实例化点进行。我看到了标准(C++14)14.6.4.1/1Forafunctiontempl

c++ - 模板实例化失败 : compiler choosing improper overload function

我对模板并不陌生,但我遇到了一个相当奇怪的问题,我需要将模板类型分离到它的组件中,以用于我正在处理的数据序列化程序。这很难解释,所以我已经证明了。这是我简化的示例问题,example.cpp。templatevoidfoo(T&arg){}templatevoidfoo(T&arg){}intmain(intargc,char*argv[]){foo(argc);return0;}我得到一个错误,然后是一个警告,这似乎表明它正在尝试实例化两个函数,但只有其中一个是合适的。$g++-Wall-Wexample.cppexample.cpp:2:43:error:‘T’isnotatemp

c++ - 没有尖括号的模板类实例化

我想知道这段代码是否合法(当然在C++17中):templateclassC{};intmain(){Cc;}这在GCC8.1.0上编译良好,但在Clang6.0.0上编译失败。我试图在标准中找到答案,但我不是语言律师,我无法弄清楚。另一方面,cppreference声明如下:std::lessl;//sameasstd::lessl;那么,是否可以定义一个对象,其类型是一个模板类,其中所有模板参数都有一个默认值,而不使用尖括号?编辑我试图澄清我的疑问:我的代码,稍作修改,即将main的主体更改为Cc;是来自C++98的合法代码。在C++17标准中,我们可能会争辩说,在这种情况下,空尖

C++无法实例化抽象类

我是C++新手。你能帮我摆脱错误吗:errorC2259:'MinHeap':无法实例化抽象类IntelliSense:返回类型与重写虚函数的返回类型“constint&”既不相同也不协变templateclassDataStructure{public:virtual~DataStructure(){}virtualboolIsEmpty()const=0;virtualvoidPush(constT&)=0;virtualconstT&Top()const=0;virtualvoidPop()=0;};classMinHeap:publicDataStructure{private

c++ - 具有常量变量的类的多个实例对常量使用相同的内存?

如果我有一个像这样定义多个常量变量的类......classSomeClass{public:SomeClass():SOME_CONSTANT(20),ANOTHER_CONSTANT(45),ANOTHER_CONSTANT2(25),ANOTHER_CONSTANT2(93){}private:constintSOME_CONSTANT;constintANOTHER_CONSTANT;constintANOTHER_CONSTANT2;constintANOTHER_CONSTANT3;是否会优化此类的多个实例以指向常量的同一内存?或者我可以通过将每个常量设为静态来节省内存吗?